package com.excesys.exsecs.energy.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.excesys.exsecs.energy.entity.DevDeptMap;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface DevDeptMapMapper extends BaseMapper<DevDeptMap> {

    //部门总用电量
    double getSumTotalPower(@Param("date") String date, @Param("id") String id);

    //部门图表 - 电
    List<Map<String, Object>> chartPower(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //部门图表 - 水
    List<Map<String, Object>> chartWater(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //部门月图表  - 电
    List<Map<String, Object>> chartMonthPower(@Param("date") String date, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //部门月图表  - 水
    List<Map<String, Object>> chartMonthWater(@Param("date") String date, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //部门年图表  - 电
    List<Map<String, Object>> chartYearPower(@Param("date") String date, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //部门年图表  - 水
    List<Map<String, Object>> chartYearWater(@Param("date") String date, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //部门 年区间 图表  - 电
    List<Map<String, Object>> chartMonthSection(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //部门 年区间 图表  - 水
    List<Map<String, Object>> chartMonthWaterSection(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") String id);

    //部门总用电量
    List<Map<String, Object>> powerDepLinks(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idsList") List<String> idsList);

    //部门能耗报表 - 日
    List<Map<String, Object>> dayReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //能耗报表 - 电 - 日区间
    List<Map<String, Object>> daySectionReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //部门能耗报表 - 月
    List<Map<String, Object>> monthReport(@Param("date") String date, @Param("idList") List<String> idList);

    //能耗报表 - 电 - 月区间
    List<Map<String, Object>> monthSectionReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //部门能耗报表 - 年
    List<Map<String, Object>> yearReport(@Param("date") String date, @Param("idList") List<String> idList);
    List<Map<String, Object>> yearSectionReport(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("idList")List<String> idList);

    //部门能耗排序
    List<Map<String, Object>> deptSortRank(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList, @Param("energyType") String energyType);

    //部门水能耗排序
    List<Map<String, Object>> deptSortWaterRank(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList, @Param("energyType") String energyType);

    //区域总用水量 - 水
    double getSumTotalWater(@Param("energyType") String energyType, @Param("timeValue") String timeValue, @Param("subzone") String subzone, @Param("id") String id);

    //部门能耗报表 - 日 - 水
    List<Map<String, Object>> dayWaterReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //部门能耗报表 - 日 - 水 - 区间
    List<Map<String, Object>> dayWaterSectionReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //部门能耗报表 - 月 - 水
    List<Map<String, Object>> monthWaterReport(@Param("date") String date, @Param("idList") List<String> idList);

    //部门能耗报表 - 月 - 水 - 区间
    List<Map<String, Object>> monthWaterSectionReport(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("idList") List<String> idList);

    //部门能耗报表 - 年 - 水
    List<Map<String, Object>> yearWaterReport(@Param("date") String date, @Param("idList") List<String> idList);
}